#include "musiclist.h"
#include<QMimeDatabase>
#include<QDebug>
//管理音乐模块的类
MusicList::MusicList()
{


}

// 将QQMusic⻚⾯中读取到的⾳乐⽂件，检测是⾳乐⽂件后添加到musicList中

void MusicList::addMusicByUrl(const QList<QUrl> &urls)
{
    for(auto& e:urls)
    {
        //检查列表中是否已经含有该歌曲路径
        if(sets.contains(e.toLocalFile()))
            continue;//存在说明不需要添加
        sets.insert(e.toLocalFile());
        //检测是否是歌曲文件
        //通过QMimeDataBase类来识别文件的mime类型
        QMimeDatabase db;
        QMimeType mimeType=db.mimeTypeForFile(e.toLocalFile());

        if(mimeType.name()!="audio/mpeg"&&mimeType.name()!="audio/flac"&&mimeType.name()!="audio/wav")
        {
            //不是音频文件
            continue;
        }

        //是音频文件类型,将该文件添加到musics种进行管理
        musics.push_back(e);

    }
}

MusicList::iterator MusicList::begin()
{
    return musics.begin();
}

MusicList::iterator MusicList::end()
{
    return musics.end();
}

MusicList::iterator MusicList::findMusicByMusicId(const QString &MusicId)
{
    for(iterator it=musics.begin();it!=musics.end();it++)
    {
        if(it->getMusicId()==MusicId)
            return it;
    }
    return end();
}

void MusicList::Push_back(const Music& music)
{
    musics.push_back(music);
}

void MusicList:: Insert(const QString &path)
{
    sets.insert(path);
}
